lib/sysroot: Maintain one variable for "root is ostree booted"
authorColin Walters <walters@verbum.org>
Tue, 1 May 2018 20:29:55 +0000 (20:29 +0000)
committerAtomic Bot <atomic-devel@projectatomic.io>
Wed, 2 May 2018 13:27:01 +0000 (13:27 +0000)
This was pointed out in a previous PR review; we don't have
a need for the separate variables.  Prep for adding an API for
this.

Closes: #1568
Approved by: jlebon

src/libostree/ostree-sysroot-private.h
src/libostree/ostree-sysroot.c

index a2f3b869fbe57b7a131ce62b5ea93ee2a83c1375..16cca5a1aa7b9366005d7d32ba0d536c43e71d51 100644 (file)
@@ -50,8 +50,7 @@ struct OstreeSysroot {
   GLnxLockFile lock;
 
   gboolean loaded;
-  gboolean ostree_booted;
-  gboolean root_is_sysroot; /* TRUE if sysroot_fd is pointed to rootfs "/" */
+  gboolean root_is_ostree_booted; /* TRUE if sysroot is / and we are booted via ostree */
   /* The device/inode for /, used to detect booted deployment */
   dev_t root_device;
   ino_t root_inode;
index f59f15086b1b842c24bb5f1b8c605267d02e1a0b..707b161f75304327737abd3f7186a305ba0f88a5 100644 (file)
@@ -636,10 +636,8 @@ parse_deployment (OstreeSysroot       *self,
     return FALSE;
 
   /* See if this is the booted deployment */
-  const gboolean root_is_ostree_booted =
-    (self->ostree_booted && self->root_is_sysroot);
   const gboolean looking_for_booted_deployment =
-    (root_is_ostree_booted && !self->booted_deployment);
+    (self->root_is_ostree_booted && !self->booted_deployment);
   gboolean is_booted_deployment = FALSE;
   if (looking_for_booted_deployment)
     {
@@ -802,9 +800,7 @@ _ostree_sysroot_reload_staged (OstreeSysroot *self,
                                GError       **error)
 {
   GLNX_AUTO_PREFIX_ERROR ("Loading staged deployment", error);
-  const gboolean root_is_ostree_booted =
-    self->ostree_booted && self->root_is_sysroot;
-  if (!root_is_ostree_booted)
+  if (!self->root_is_ostree_booted)
     return TRUE; /* Note early return */
 
   g_assert (self->booted_deployment);
@@ -879,7 +875,7 @@ ostree_sysroot_load_if_changed (OstreeSysroot  *self,
     {
       if (!glnx_fstatat_allow_noent (AT_FDCWD, "/run/ostree-booted", NULL, 0, error))
         return FALSE;
-      self->ostree_booted = (errno == 0);
+      const gboolean ostree_booted = (errno == 0);
 
       { struct stat root_stbuf;
         if (!glnx_fstatat (AT_FDCWD, "/", &root_stbuf, 0, error))
@@ -892,9 +888,11 @@ ostree_sysroot_load_if_changed (OstreeSysroot  *self,
       if (!glnx_fstat (self->sysroot_fd, &self_stbuf, error))
         return FALSE;
 
-      self->root_is_sysroot =
+      const gboolean root_is_sysroot =
         (self->root_device == self_stbuf.st_dev &&
          self->root_inode == self_stbuf.st_ino);
+
+      self->root_is_ostree_booted = (ostree_booted && root_is_sysroot);
     }
 
   int bootversion = 0;
@@ -947,9 +945,7 @@ ostree_sysroot_load_if_changed (OstreeSysroot  *self,
         }
     }
 
-  const gboolean root_is_ostree_booted =
-    self->ostree_booted && self->root_is_sysroot;
-  if (root_is_ostree_booted && !self->booted_deployment)
+  if (self->root_is_ostree_booted && !self->booted_deployment)
     return glnx_throw (error, "Unexpected state: /run/ostree-booted found and in / sysroot but not in a booted deployment");
 
   if (!_ostree_sysroot_reload_staged (self, error))